Hello大家,
真的把今年的國定假日都過完了...
有點哀傷!
下次的連續假期是跨年了,
讓我們一起哀傷兩個半月來迎接下個連假吧!
之前有提到Range query的使用方法,
能夠進行的內容包刮容量大小、IP、日期等,
其中能設定的內容有大於、小於等等:gt
:大於gte
:大於等於lt
:小於lte
:小於等於
關於日期,
有些時間的記法因為時區的原因跟我們所在時區不一致時,
我們就要利用time_zone進行調整,
寫法就會是"time_zone": "+[時間]"
"time_zone": "+08:00"
另外相關性的調整又來拉~
跟前面說的fuzzy的概念有點相似,
我們可以藉由設定boost
來調整查詢結果的相關性,boost
預設值為1.0,
0~1.0之間的分數會顯示與查詢內容較遠(不相關)的內容
大於1.0的話則會增加其相關性。
Elasticsearch針對每一個doc都會在進行搜索時給予一個匹配度的分數,
設定boost
則是用來決定是否要放寬這個條件,
要不要讓匹配度較低的結果也顯示出來。
日期的設定方式比較特別,
如果我們要查詢今天以前的範圍,
所以我們就要找比大於等於(今天
-1
)的日期
並且小於等於今天
所以說下法就是
"gte":"now-1d/d,
"lt":"now/d"
那如果是一個小時內的話也是相同的概念
"gte":"now-1h/h,
"lt":"now/h"
完整的寫法如下
{
"query": {
"range": {
"[Field]": {
"[條件1]": "[內容1]",
"[條件2]": "[內容1]"
}
}
}
}
{
"query": {
"range": {
"date": {
"gte":"now-1h/h,
"lt":"now/h"
}
}
}
}
如果要加入時區的話
{
"query": {
"range": {
"date": {
"time_zone": "+01:00",
"gte":"now-1h/h,
"lt":"now/h"
}
}
}
}